<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Basic Types</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="index.html" title="GLib Reference Manual">
<link rel="up" href="glib-fundamentals.html" title="GLib Fundamentals">
<link rel="prev" href="glib-Version-Information.html" title="Version Information">
<link rel="next" href="glib-Limits-of-Basic-Types.html" title="Limits of Basic Types">
<meta name="generator" content="GTK-Doc V1.9 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="chapter" href="glib.html" title="GLib Overview">
<link rel="chapter" href="glib-fundamentals.html" title="GLib Fundamentals">
<link rel="chapter" href="glib-core.html" title="GLib Core Application Support">
<link rel="chapter" href="glib-utilities.html" title="GLib Utilities">
<link rel="chapter" href="glib-data-types.html" title="GLib Data Types">
<link rel="chapter" href="tools.html" title="GLib Tools">
<link rel="index" href="ix01.html" title="Index">
<link rel="index" href="ix02.html" title="Index of deprecated symbols">
<link rel="index" href="ix03.html" title="Index of new symbols in 2.2">
<link rel="index" href="ix04.html" title="Index of new symbols in 2.4">
<link rel="index" href="ix05.html" title="Index of new symbols in 2.6">
<link rel="index" href="ix06.html" title="Index of new symbols in 2.8">
<link rel="index" href="ix07.html" title="Index of new symbols in 2.10">
<link rel="index" href="ix08.html" title="Index of new symbols in 2.12">
<link rel="index" href="ix09.html" title="Index of new symbols in 2.14">
<link rel="index" href="ix10.html" title="Index of new symbols in 2.16">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="glib-Version-Information.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="glib-fundamentals.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GLib Reference Manual</th>
<td><a accesskey="n" href="glib-Limits-of-Basic-Types.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2880278" class="shortcut">Top</a>
                  &#160;|&#160;
                  <a href="#id2880517" class="shortcut">Description</a></nobr></td></tr>
</table>
<div class="refentry" lang="en">
<a name="glib-Basic-Types"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2>
<a name="id2880278"></a><span class="refentrytitle">Basic Types</span>
</h2>
<p>Basic Types &#8212; standard GLib types, defined for ease-of-use and portability</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<pre class="synopsis">

#include &lt;glib.h&gt;


typedef             <a class="link" href="glib-Basic-Types.html#gboolean">gboolean</a>;
typedef             <a class="link" href="glib-Basic-Types.html#gpointer">gpointer</a>;
typedef             <a class="link" href="glib-Basic-Types.html#gconstpointer">gconstpointer</a>;
typedef             <a class="link" href="glib-Basic-Types.html#gchar">gchar</a>;
typedef             <a class="link" href="glib-Basic-Types.html#guchar">guchar</a>;

typedef             <a class="link" href="glib-Basic-Types.html#gint">gint</a>;
typedef             <a class="link" href="glib-Basic-Types.html#guint">guint</a>;
typedef             <a class="link" href="glib-Basic-Types.html#gshort">gshort</a>;
typedef             <a class="link" href="glib-Basic-Types.html#gushort">gushort</a>;
typedef             <a class="link" href="glib-Basic-Types.html#glong">glong</a>;
typedef             <a class="link" href="glib-Basic-Types.html#gulong">gulong</a>;

typedef             <a class="link" href="glib-Basic-Types.html#gint8">gint8</a>;
typedef             <a class="link" href="glib-Basic-Types.html#guint8">guint8</a>;
typedef             <a class="link" href="glib-Basic-Types.html#gint16">gint16</a>;
typedef             <a class="link" href="glib-Basic-Types.html#guint16">guint16</a>;
typedef             <a class="link" href="glib-Basic-Types.html#gint32">gint32</a>;
typedef             <a class="link" href="glib-Basic-Types.html#guint32">guint32</a>;

#define             <a class="link" href="glib-Basic-Types.html#G-HAVE-GINT64:CAPS">G_HAVE_GINT64</a>
typedef             <a class="link" href="glib-Basic-Types.html#gint64">gint64</a>;
GLIB_VAR            <a class="link" href="glib-Basic-Types.html#guint64">guint64</a>                             ();
#define             <a class="link" href="glib-Basic-Types.html#G-GINT64-CONSTANT:CAPS">G_GINT64_CONSTANT</a>                   (val)
#define             <a class="link" href="glib-Basic-Types.html#G-GUINT64-CONSTANT:CAPS">G_GUINT64_CONSTANT</a>                  (val)

typedef             <a class="link" href="glib-Basic-Types.html#gfloat">gfloat</a>;
typedef             <a class="link" href="glib-Basic-Types.html#gdouble">gdouble</a>;

typedef             <a class="link" href="glib-Basic-Types.html#gsize">gsize</a>;
typedef             <a class="link" href="glib-Basic-Types.html#gssize">gssize</a>;
typedef             <a class="link" href="glib-Basic-Types.html#goffset">goffset</a>;

</pre>
</div>
<div class="refsect1" lang="en">
<a name="id2880517"></a><h2>Description</h2>
<p>
GLib defines a number of commonly used types, which can be divided into
4 groups:

</p>
<div class="itemizedlist"><ul type="disc">
<li><p>
New types which are not part of standard C - <a class="link" href="glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>, <a class="link" href="glib-Basic-Types.html#gsize"><span class="type">gsize</span></a>, <a class="link" href="glib-Basic-Types.html#gssize"><span class="type">gssize</span></a>.
</p></li>
<li><p>
Integer types which are guaranteed to be the same size across all platforms -
<a class="link" href="glib-Basic-Types.html#gint8"><span class="type">gint8</span></a>, <a class="link" href="glib-Basic-Types.html#guint8"><span class="type">guint8</span></a>, <a class="link" href="glib-Basic-Types.html#gint16"><span class="type">gint16</span></a>, <a class="link" href="glib-Basic-Types.html#guint16"><span class="type">guint16</span></a>, <a class="link" href="glib-Basic-Types.html#gint32"><span class="type">gint32</span></a>, <a class="link" href="glib-Basic-Types.html#guint32"><span class="type">guint32</span></a>, <a class="link" href="glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>, <a class="link" href="glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>.
</p></li>
<li><p>
Types which are easier to use than their standard C counterparts -
<a class="link" href="glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>, <a class="link" href="glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a>, <a class="link" href="glib-Basic-Types.html#guchar"><span class="type">guchar</span></a>, <a class="link" href="glib-Basic-Types.html#guint"><span class="type">guint</span></a>, <a class="link" href="glib-Basic-Types.html#gushort"><span class="type">gushort</span></a>, <a class="link" href="glib-Basic-Types.html#gulong"><span class="type">gulong</span></a>.
</p></li>
<li><p>
Types which correspond exactly to standard C types, but are included
for completeness - <a class="link" href="glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>, <a class="link" href="glib-Basic-Types.html#gint"><span class="type">gint</span></a>, <a class="link" href="glib-Basic-Types.html#gshort"><span class="type">gshort</span></a>, <a class="link" href="glib-Basic-Types.html#glong"><span class="type">glong</span></a>, <a class="link" href="glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a>, <a class="link" href="glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>.
</p></li>
</ul></div>
<p>

</p>
</div>
<div class="refsect1" lang="en">
<a name="id2880736"></a><h2>Details</h2>
<div class="refsect2" lang="en">
<a name="id2880747"></a><h3>
<a name="gboolean"></a>gboolean</h3>
<a class="indexterm" name="id2880759"></a><pre class="programlisting">typedef gint   gboolean;
</pre>
<p>
A standard <span class="type">boolean</span> type.
Variables of this type should only contain the value <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> or <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2880800"></a><h3>
<a name="gpointer"></a>gpointer</h3>
<a class="indexterm" name="id2880812"></a><pre class="programlisting">typedef void* gpointer;
</pre>
<p>
An untyped pointer.
<a class="link" href="glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> looks better and is easier to use than <span class="type">void*</span>.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2880839"></a><h3>
<a name="gconstpointer"></a>gconstpointer</h3>
<a class="indexterm" name="id2880852"></a><pre class="programlisting">typedef const void *gconstpointer;
</pre>
<p>
An untyped pointer to constant data.
The data pointed to should not be changed.
</p>
<p>
This is typically used in function prototypes to indicate that the
data pointed to will not be altered by the function.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2880874"></a><h3>
<a name="gchar"></a>gchar</h3>
<a class="indexterm" name="id2880886"></a><pre class="programlisting">typedef char   gchar;
</pre>
<p>
Corresponds to the standard C <span class="type">char</span> type.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2880905"></a><h3>
<a name="guchar"></a>guchar</h3>
<a class="indexterm" name="id2880917"></a><pre class="programlisting">typedef unsigned char   guchar;
</pre>
<p>
Corresponds to the standard C <span class="type">unsigned char</span> type.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2880937"></a><h3>
<a name="gint"></a>gint</h3>
<a class="indexterm" name="id2880949"></a><pre class="programlisting">typedef int    gint;
</pre>
<p>
Corresponds to the standard C <span class="type">int</span> type.
Values of this type can range from <a class="link" href="glib-Limits-of-Basic-Types.html#G-MININT:CAPS"><span class="type">G_MININT</span></a> to <a class="link" href="glib-Limits-of-Basic-Types.html#G-MAXINT:CAPS"><span class="type">G_MAXINT</span></a>.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2880987"></a><h3>
<a name="guint"></a>guint</h3>
<a class="indexterm" name="id2880999"></a><pre class="programlisting">typedef unsigned int    guint;
</pre>
<p>
Corresponds to the standard C <span class="type">unsigned int</span> type.
Values of this type can range from 0 to <a class="link" href="glib-Limits-of-Basic-Types.html#G-MAXUINT:CAPS"><span class="type">G_MAXUINT</span></a>.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2881029"></a><h3>
<a name="gshort"></a>gshort</h3>
<a class="indexterm" name="id2881041"></a><pre class="programlisting">typedef short  gshort;
</pre>
<p>
Corresponds to the standard C <span class="type">short</span> type.
Values of this type can range from <a class="link" href="glib-Limits-of-Basic-Types.html#G-MINSHORT:CAPS"><span class="type">G_MINSHORT</span></a> to <a class="link" href="glib-Limits-of-Basic-Types.html#G-MAXSHORT:CAPS"><span class="type">G_MAXSHORT</span></a>.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2881078"></a><h3>
<a name="gushort"></a>gushort</h3>
<a class="indexterm" name="id2881090"></a><pre class="programlisting">typedef unsigned short  gushort;
</pre>
<p>
Corresponds to the standard C <span class="type">unsigned short</span> type.
Values of this type can range from 0 to <a class="link" href="glib-Limits-of-Basic-Types.html#G-MAXUSHORT:CAPS"><span class="type">G_MAXUSHORT</span></a>.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2881120"></a><h3>
<a name="glong"></a>glong</h3>
<a class="indexterm" name="id2881132"></a><pre class="programlisting">typedef long   glong;
</pre>
<p>
Corresponds to the standard C <span class="type">long</span> type.
Values of this type can range from <a class="link" href="glib-Limits-of-Basic-Types.html#G-MINLONG:CAPS"><span class="type">G_MINLONG</span></a> to <a class="link" href="glib-Limits-of-Basic-Types.html#G-MAXLONG:CAPS"><span class="type">G_MAXLONG</span></a>.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2881170"></a><h3>
<a name="gulong"></a>gulong</h3>
<a class="indexterm" name="id2881182"></a><pre class="programlisting">typedef unsigned long   gulong;
</pre>
<p>
Corresponds to the standard C <span class="type">unsigned long</span> type.
Values of this type can range from 0 to <a class="link" href="glib-Limits-of-Basic-Types.html#G-MAXULONG:CAPS"><span class="type">G_MAXULONG</span></a>.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2881211"></a><h3>
<a name="gint8"></a>gint8</h3>
<a class="indexterm" name="id2881224"></a><pre class="programlisting">typedef signed char gint8;
</pre>
<p>
A signed integer guaranteed to be 8 bits on all platforms.
Values of this type can range from -128 to 127.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2881241"></a><h3>
<a name="guint8"></a>guint8</h3>
<a class="indexterm" name="id2881253"></a><pre class="programlisting">typedef unsigned char guint8;
</pre>
<p>
An unsigned integer guaranteed to be 8 bits on all platforms.
Values of this type can range from 0 to 255.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2881270"></a><h3>
<a name="gint16"></a>gint16</h3>
<a class="indexterm" name="id2881282"></a><pre class="programlisting">typedef signed short gint16;
</pre>
<p>
A signed integer guaranteed to be 16 bits on all platforms.
Values of this type can range from -32,768 to 32,767.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2881300"></a><h3>
<a name="guint16"></a>guint16</h3>
<a class="indexterm" name="id2881312"></a><pre class="programlisting">typedef unsigned short guint16;
</pre>
<p>
An unsigned integer guaranteed to be 16 bits on all platforms.
Values of this type can range from 0 to 65,535.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2881329"></a><h3>
<a name="gint32"></a>gint32</h3>
<a class="indexterm" name="id2881341"></a><pre class="programlisting">typedef signed int gint32;
</pre>
<p>
A signed integer guaranteed to be 32 bits on all platforms.
Values of this type can range from -2,147,483,648 to 2,147,483,647.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2881359"></a><h3>
<a name="guint32"></a>guint32</h3>
<a class="indexterm" name="id2881371"></a><pre class="programlisting">typedef unsigned int guint32;
</pre>
<p>
An unsigned integer guaranteed to be 32 bits on all platforms.
Values of this type can range from 0 to 4,294,967,295.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2881388"></a><h3>
<a name="G-HAVE-GINT64:CAPS"></a>G_HAVE_GINT64</h3>
<a class="indexterm" name="id2881403"></a><pre class="programlisting">#define G_HAVE_GINT64 1          /* deprecated, always true */
</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">G_HAVE_GINT64</code> is deprecated and should not be used in newly-written code. GLib requires 64-bit integer support since version 2.0, therefore
<a class="link" href="glib-Basic-Types.html#G-HAVE-GINT64:CAPS"><code class="literal">G_HAVE_GINT64</code></a> is <span class="emphasis"><em>always</em></span> defined.</p>
</div>
<p>
This macro is defined if 64-bit signed and unsigned integers are available
on the platform. 
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2881448"></a><h3>
<a name="gint64"></a>gint64</h3>
<a class="indexterm" name="id2881460"></a><pre class="programlisting">G_GNUC_EXTENSION typedef signed long long gint64;
</pre>
<p>
A signed integer guaranteed to be 64 bits on all platforms.
Values of this type can range from -9,223,372,036,854,775,808 to
9,223,372,036,854,775,807.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2881478"></a><h3>
<a name="guint64"></a>guint64 ()</h3>
<a class="indexterm" name="id2881490"></a><pre class="programlisting">GLIB_VAR            guint64                             ();</pre>
<p>
An unsigned integer guaranteed to be 64 bits on all platforms.
Values of this type can range from 0 to 18,446,744,073,709,551,615.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></p></td>
<td>


</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2881529"></a><h3>
<a name="G-GINT64-CONSTANT:CAPS"></a>G_GINT64_CONSTANT()</h3>
<a class="indexterm" name="id2881542"></a><pre class="programlisting">#define G_GINT64_CONSTANT(val)	(G_GNUC_EXTENSION (val##LL))
</pre>
<p>
This macro is used to insert 64-bit integer literals into the source code.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>val</code></em>&#160;:</span></p></td>
<td>a literal integer value, e.g. 0x1d636b02300a7aa7U.


</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2881578"></a><h3>
<a name="G-GUINT64-CONSTANT:CAPS"></a>G_GUINT64_CONSTANT()</h3>
<a class="indexterm" name="id2881593"></a><pre class="programlisting">#define G_GUINT64_CONSTANT(val)	(G_GNUC_EXTENSION (val##ULL))
</pre>
<p>
This macro is used to insert 64-bit unsigned integer literals into the 
source code.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>val</code></em>&#160;:</span></p></td>
<td>a literal integer value, e.g. 0x1d636b02300a7aa7U.
</td>
</tr></tbody>
</table></div>
<p class="since">Since 2.10


</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2881636"></a><h3>
<a name="gfloat"></a>gfloat</h3>
<a class="indexterm" name="id2881648"></a><pre class="programlisting">typedef float   gfloat;
</pre>
<p>
Corresponds to the standard C <span class="type">float</span> type.
Values of this type can range from -<a class="link" href="glib-Limits-of-Basic-Types.html#G-MAXFLOAT:CAPS"><span class="type">G_MAXFLOAT</span></a> to <a class="link" href="glib-Limits-of-Basic-Types.html#G-MAXFLOAT:CAPS"><span class="type">G_MAXFLOAT</span></a>.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2881686"></a><h3>
<a name="gdouble"></a>gdouble</h3>
<a class="indexterm" name="id2881698"></a><pre class="programlisting">typedef double  gdouble;
</pre>
<p>
Corresponds to the standard C <span class="type">double</span> type.
Values of this type can range from -<a class="link" href="glib-Limits-of-Basic-Types.html#G-MAXDOUBLE:CAPS"><span class="type">G_MAXDOUBLE</span></a> to <a class="link" href="glib-Limits-of-Basic-Types.html#G-MAXDOUBLE:CAPS"><span class="type">G_MAXDOUBLE</span></a>.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2881736"></a><h3>
<a name="gsize"></a>gsize</h3>
<a class="indexterm" name="id2881748"></a><pre class="programlisting">typedef unsigned int gsize;
</pre>
<p>
An unsigned integer type of the result of the sizeof operator, corresponding
to the size_t type defined in C99. This type is wide enough to hold the numeric
value of a pointer, so it is usually 32bit wide on a 32bit platform and
64bit wide on a 64bit platform.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2881767"></a><h3>
<a name="gssize"></a>gssize</h3>
<a class="indexterm" name="id2881779"></a><pre class="programlisting">typedef signed int gssize;
</pre>
<p>
A signed variant of gsize, corresponding to the ssize_t defined on most platforms.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2881796"></a><h3>
<a name="goffset"></a>goffset</h3>
<a class="indexterm" name="id2881808"></a><pre class="programlisting">typedef gint64 goffset;
</pre>
<p>
A signed integer type that is used for file offsets, corresponding to the 
C99 type off64_t.
</p>
</div>
</div>
<div class="refsect1" lang="en">
<a name="id2881826"></a><div class="refsect2" lang="en"><a name="id2881827"></a></div>
<hr>
<div class="refsect2" lang="en"><a name="id2881828"></a></div>
</div>
</div>
</body>
</html>
